mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	issue #5585
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7012 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -1,5 +1,7 @@ | ||||
| 2005-11-07  Kevin P. Fleming  <kpfleming@digium.com> | ||||
|  | ||||
| 	* manager.c (astman_get_variables): restore old multiple-variable behavior for "Variable" header (issue #5585) | ||||
|  | ||||
| 	* many files: don't check for NULL before calling ast_strlen_zero, it can do it itself (issue #5648) | ||||
|  | ||||
| 	* pbx.c (handle_show_hints): use proper state-to-string function for hint state (issue #5583) | ||||
|   | ||||
							
								
								
									
										36
									
								
								manager.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								manager.c
									
									
									
									
									
								
							| @@ -309,26 +309,34 @@ char *astman_get_header(struct message *m, char *var) | ||||
|  | ||||
| struct ast_variable *astman_get_variables(struct message *m) | ||||
| { | ||||
| 	int varlen, x; | ||||
| 	int varlen, x, y; | ||||
| 	struct ast_variable *head = NULL, *cur; | ||||
| 	char *var, *val; | ||||
| 	unsigned int var_count; | ||||
|         char *vars[32]; | ||||
| 	 | ||||
| 	varlen = strlen("Variable: ");	 | ||||
|  | ||||
| 	for (x = 0; x < m->hdrcount; x++) { | ||||
| 		if (!strncasecmp("Variable: ", m->headers[x], varlen)) { | ||||
| 			var = val = ast_strdupa(m->headers[x] + varlen); | ||||
| 			if (!var) | ||||
| 				return head;				 | ||||
| 			strsep(&val, "="); | ||||
| 			if (!val || ast_strlen_zero(var)) | ||||
| 				continue; | ||||
| 			cur = ast_variable_new(var, val); | ||||
| 			if (head) { | ||||
| 				cur->next = head; | ||||
| 				head = cur; | ||||
| 			} else | ||||
| 				head = cur; | ||||
| 		if (strncasecmp("Variable: ", m->headers[x], varlen)) | ||||
| 			continue; | ||||
|  | ||||
| 		if (!(var = ast_strdupa(m->headers[x] + varlen))) | ||||
| 			return head; | ||||
|  | ||||
| 		if ((var_count = ast_app_separate_args(var, '|', vars, sizeof(vars) / sizeof(var[0])))) { | ||||
| 			for (y = 0; y < var_count; y++) { | ||||
| 				var = val = vars[y]; | ||||
| 				strsep(&val, "="); | ||||
| 				if (!val || ast_strlen_zero(var)) | ||||
| 					continue; | ||||
| 				cur = ast_variable_new(var, val); | ||||
| 				if (head) { | ||||
| 					cur->next = head; | ||||
| 					head = cur; | ||||
| 				} else | ||||
| 					head = cur; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user