| 406 for(mechnode = xmlnode_get_child(mechanisms, "mechanism"); mechnode; |
406 for(mechnode = xmlnode_get_child(mechanisms, "mechanism"); mechnode; |
| 407 mechnode = xmlnode_get_next_twin(mechnode)) |
407 mechnode = xmlnode_get_next_twin(mechnode)) |
| 408 { |
408 { |
| 409 char *mech_name = xmlnode_get_data(mechnode); |
409 char *mech_name = xmlnode_get_data(mechnode); |
| 410 |
410 |
| |
411 /* Ignore blank mechanisms and EXTERNAL. External isn't |
| |
412 * supported, and Cyrus SASL's mechanism returns |
| |
413 * SASL_NOMECH when the caller (us) doesn't configure it. |
| |
414 * Except SASL_NOMECH is supposed to mean "no concordant |
| |
415 * mechanisms"... Easiest just to blacklist it (for now). |
| |
416 */ |
| 411 if (!mech_name || !*mech_name || |
417 if (!mech_name || !*mech_name || |
| 412 g_str_equal(mech_name, "EXTERNAL")) { |
418 g_str_equal(mech_name, "EXTERNAL")) { |
| 413 g_free(mech_name); |
419 g_free(mech_name); |
| 414 continue; |
420 continue; |
| 415 } |
421 } |