diff options
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | uid.c | 13 | 
2 files changed, 13 insertions, 2 deletions
| @@ -18,6 +18,8 @@ fetchmail-5.0.6 ():    `username' or `password' keyword, courtesy of Brian Boutel.  * Interface option fix from Bill Currie.  * 554 added to default antispam vaklues (for Postfix). +* In UID files, split on *rightmost* @ as some dialups actually embed +  @ in usernames.  Warning: CompuServe changed their POP3 system on 31 July 1999.  In doing  so, they broke fetchmail's RPA support.  Nobody has sent me either code that @@ -84,8 +84,17 @@ void initialize_saved_lists(struct query *hostlist, const char *idfile)  	while (fgets(buf, POPBUFSIZE, tmpfp) != (char *)NULL)  	{ -	    /* possible lossage here with very old versions of sscanf(3)... */ -	    if ((st = sscanf(buf, "%[^@]@%s %s\n", user, host, id)) == 3) +	    /* +	     * This inelegant hack was brought to you by the fact that +	     * some dial-up resellers actually use account names with +	     * @ in them.  So we need to split on the rightmost @... +	     */ +	    char	*atsign = strrchr(buf, '@'); + +	    if (atsign) +		*atsign = ' '; + +	    if ((st = sscanf(buf, "%s %s %s\n", user, host, id)) == 3)  	    {  		for (ctl = hostlist; ctl; ctl = ctl->next)  		{ | 
