diff -c -r xmcd-3.0.2-orig/cdinfo_d/cdinfo_i.c xmcd-3.0.2/cdinfo_d/cdinfo_i.c *** xmcd-3.0.2-orig/cdinfo_d/cdinfo_i.c Tue Aug 7 17:14:55 2001 --- xmcd-3.0.2/cdinfo_d/cdinfo_i.c Mon Aug 27 00:55:35 2001 *************** *** 20,26 **** * */ #ifndef LINT ! static char *_cdinfo_i_c_ident_ = "@(#)cdinfo_i.c 7.114 01/07/26"; #endif #ifdef __VMS --- 20,26 ---- * */ #ifndef LINT ! static char *_cdinfo_i_c_ident_ = "@(#)cdinfo_i.c 7.115 01/08/24"; #endif #ifdef __VMS *************** *** 5112,5117 **** --- 5112,5119 ---- if (app_data.proxy_auth) { if (cdinfo_db.proxy_user == NULL || cdinfo_db.proxy_passwd == NULL) { + CddbReleaseObject(optp); + *retcode = AUTH_ERR; (void) cdinfo_closecddb(cp); return NULL; diff -c -r xmcd-3.0.2-orig/cdinfo_d/cdinfo_x.c xmcd-3.0.2/cdinfo_d/cdinfo_x.c *** xmcd-3.0.2-orig/cdinfo_d/cdinfo_x.c Tue Aug 7 17:14:55 2001 --- xmcd-3.0.2/cdinfo_d/cdinfo_x.c Mon Aug 27 00:55:40 2001 *************** *** 20,26 **** * */ #ifndef LINT ! static char *_cdinfo_x_c_ident_ = "@(#)cdinfo_x.c 7.120 01/07/26"; #endif #ifdef __VMS --- 20,26 ---- * */ #ifndef LINT ! static char *_cdinfo_x_c_ident_ = "@(#)cdinfo_x.c 7.122 01/08/24"; #endif #ifdef __VMS *************** *** 834,839 **** --- 834,843 ---- (void) cdinfo_initcddb(cp, &retcode); (void) cdinfo_closecddb(cp); } + else if (retcode == AUTH_ERR) { + /* Special case handling for proxy auth error */ + return CDINFO_SET_CODE(retcode, 0); + } } for (pp = cdinfo_db.pathlist; pp != NULL; pp = pp->next) { *************** *** 848,853 **** --- 852,863 ---- /* Open CDDB connection */ if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) { /* CDDB service failure */ + if (retcode == AUTH_ERR) { + /* Special case handling for + * proxy auth error + */ + return CDINFO_SET_CODE(retcode, 0); + } break; } *************** *** 1135,1140 **** --- 1145,1152 ---- return CDINFO_SET_CODE(KILLED_ERR, WTERMSIG(stat_val)); else return 0; + + /*NOTREACHED*/ } if (cdinfo_cddb_iscfg() && *************** *** 1151,1156 **** --- 1163,1172 ---- (void) cdinfo_initcddb(cp, &retcode); (void) cdinfo_closecddb(cp); } + else if (retcode == AUTH_ERR) { + /* Special case handling for proxy auth error */ + CH_RET(retcode); + } } done = FALSE; *************** *** 1165,1171 **** /* Open CDDB connection */ if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) { ! /* Failure */ break; } --- 1181,1193 ---- /* Open CDDB connection */ if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) { ! /* CDDB service Failure */ ! if (retcode == AUTH_ERR) { ! /* Special case handling for ! * proxy auth error ! */ ! CH_RET(retcode); ! } break; }