Changeset 652
- Timestamp:
- 09/08/08 11:20:20 (5 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
etc/c2s.xml.dist.in (modified) (1 diff)
-
sx/sasl_gsasl.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/etc/c2s.xml.dist.in
r642 r652 346 346 <!-- 347 347 <anonymous/> 348 <gssapi/> 348 349 --> 349 350 </sasl> -
trunk/sx/sasl_gsasl.c
r624 r652 57 57 char *service; 58 58 char *hostname; 59 char *gssapi_display_name;60 59 char *realm; 61 60 #ifndef GSASL_NO_OBSOLETE … … 158 157 return; 159 158 } 159 } else if (NULL != gsasl_property_fast(sd, GSASL_GSSAPI_DISPLAY_NAME)) { 160 creds.authzid = strdup(gsasl_property_fast(sd, GSASL_GSSAPI_DISPLAY_NAME)); 161 authzid = NULL; 160 162 } else { 161 163 /* override unchecked arbitrary authzid */ … … 177 179 } 178 180 179 /** make the stream suthenticated second time round */181 /** make the stream authenticated second time round */ 180 182 static void _sx_sasl_stream(sx_t s, sx_plugin_t p) { 181 183 Gsasl_session *sd = (Gsasl_session *) s->plugin_data[p->index]; … … 621 623 return GSASL_NEEDS_MORE; 622 624 625 case GSASL_SERVICE: 626 gsasl_property_set(sd, GSASL_SERVICE, "xmpp"); 627 return GSASL_OK; 628 629 case GSASL_HOSTNAME: 630 { 631 char hostname[256]; 632 /* get hostname */ 633 hostname[0] = '\0'; 634 gethostname(hostname, 256); 635 hostname[255] = '\0'; 636 637 gsasl_property_set(sd, GSASL_HOSTNAME, hostname); 638 } 639 return GSASL_OK; 640 623 641 case GSASL_VALIDATE_SIMPLE: 624 642 /* GSASL_AUTHID, GSASL_AUTHZID, GSASL_PASSWORD */ … … 635 653 return GSASL_AUTHENTICATION_ERROR; 636 654 655 case GSASL_VALIDATE_GSSAPI: 656 /* GSASL_AUTHZID, GSASL_GSSAPI_DISPLAY_NAME */ 657 creds.authnid = gsasl_property_fast(sd, GSASL_GSSAPI_DISPLAY_NAME); 658 if(!creds.authnid) return GSASL_NO_AUTHID; 659 creds.authzid = gsasl_property_fast(sd, GSASL_AUTHZID); 660 if(!creds.authzid) return GSASL_NO_AUTHZID; 661 gsasl_property_set(sd, GSASL_AUTHID, creds.authnid); 662 return GSASL_OK; 663 637 664 case GSASL_VALIDATE_ANONYMOUS: 638 665 /* GSASL_ANONYMOUS_TOKEN */
