add: if (no_rpl) goto resume_script;
context: static int cpl_process_register(struct sip_msg* msg, char* str1, char* str2){	struct disposition *disp;	struct disposition_param *param;	int  ret;	int  mime;	int  *mimes;	/* make sure that is a REGISTER ??? */	/* here should be the CONTACT- hack */	/* is there a CONTENT-TYPE hdr ? */	mime = parse_content_type_hdr( msg );	if (mime==-1)		goto error;	/* check the mime type */	DBG("DEBUG:cpl_process_register: Content-Type mime found %u, %u\n",		mime>>16,mime&0x00ff);	if ( mime && mime==(TYPE_APPLICATION<<16)+SUBTYPE_CPLXML ) {		/* can be an upload or remove -> check for the content-purpose and		 * content-action headers */		DBG("DEBUG:cpl_process_register: carrying CPL -> look at "			"Content-Disposition\n");		if (parse_content_disposition( msg )!=0) {			LOG(L_ERR,"ERROR:cpl_process_register: Content-Disposition missing "				"or corrupted\n");			goto error;		}		disp = get_content_disposition(msg);		print_disposition( disp ); /* just for DEBUG */		/* check if the type of disposition is SCRIPT */		if (disp->type.len!=CPL_SCRIPT_LEN ||		strncasecmp(disp->type.s,CPL_SCRIPT,CPL_SCRIPT_LEN) ) {			LOG(L_ERR,"ERROR:cpl_process_register: bogus message - Content-Type"				"says CPL_SCRIPT, but Content-Disposition something else\n");			goto error;		}		/* disposition type is OK -> look for action parameter */		for(param=disp->params;param;param=param->next) {			if (param->name.len==ACTION_PARAM_LEN &&			!strncasecmp(param->name.s,ACTION_PARAM,ACTION_PARAM_LEN))				break;		}		if (param==0) {			LOG(L_ERR,"ERROR:cpl_process_register: bogus message - "				"Content-Disposition has no action param\n");			goto error;		}		/* action param found -> check its value: store or remove */		if (param->body.len==STORE_ACTION_LEN &&		!strncasecmp( param->body.s, STORE_ACTION, STORE_ACTION_LEN)) {			/* it's a store action -> get the script from body message and store			 * it into database (CPL and BINARY format) */			if (do_script_action( msg, STORE_SCRIPT)==-1)				goto error;		} else		if (param->body.len==REMOVE_ACTION_LEN &&		!strncasecmp( param->body.s, REMOVE_ACTION, REMOVE_ACTION_LEN)) {			/* it's a remove action -> remove the script from database */			if (do_script_action( msg, REMOVE_SCRIPT)==-1)				goto error;		} else {			LOG(L_ERR,"ERROR:cpl_process_register: unknown action <%.*s>\n",				param->body.len,param->body.s);			goto error;		}		/* send a 200 OK reply back */		cpl_fct.sl_reply( msg, (char*)200, "OK");		/* I send the reply and I don't want to return to script execution, so		 * I return 0 to do break */		goto stop_script;	}	/* is there an ACCEPT hdr ? */	if ( (ret=parse_accept_hdr(msg))==-1)		goto error;	if (ret==0 || (mimes=get_accept(msg))==0 )		/* accept header not present or no mimes found */		goto resume_script;	/* looks if the REGISTER accepts cpl-xml or * */	while (*mimes) {		DBG("DEBUG: accept mime found %u, %u\n",			(*mimes)>>16,(*mimes)&0x00ff);		if (*mimes==(TYPE_ALL<<16)+SUBTYPE_ALL ||		*mimes==(TYPE_APPLICATION<<16)+SUBTYPE_CPLXML )			break;		mimes++;	}	if (*mimes==0)		/* no accept mime that matched cpl */		goto resume_script;	/* get the user name from msg, retrieve the script from db	 * and appended to reply */	if (do_script_download( msg )==-1)		goto error;	/* send a 200 OK reply back */	cpl_fct.sl_reply( msg, (char*)200, "OK");stop_script:	return 0;resume_script:	return 1;error:	/* send a error reply back */	cpl_fct.sl_reply( msg, (char*)cpl_err->err_code, cpl_err->err_msg);	/* I don't want to return to script execution, so I return 0 to do break */	return 0;}