mirror of
				https://git.haproxy.org/git/haproxy.git/
				synced 2025-10-31 08:30:59 +01:00 
			
		
		
		
	The following directories were moved from contrib/ to dev/ to make their use case a bit clearer. In short, only developers are expected to ever go there. The makefile was updated to build and clean from these ones. base64/ flags/ hpack/ plug_qdisc/ poll/ tcploop/ trace/
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * base64rev generator
 | |
|  *
 | |
|  * Copyright 2009-2010 Krzysztof Piotr Oledzki <ole@ans.pl>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License
 | |
|  * as published by the Free Software Foundation; either version
 | |
|  * 2 of the License, or (at your option) any later version.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #include <stdio.h>
 | |
| 
 | |
| const char base64tab[65]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 | |
| char base64rev[128];
 | |
| 
 | |
| #define base '#'	/* arbitrary chosen base value */
 | |
| #define B64MAX	64
 | |
| #define B64PADV B64MAX
 | |
| 
 | |
| int main() {
 | |
| 	char *p, c;
 | |
| 	int i, min = 255, max = 0;
 | |
| 
 | |
| 	for (i = 0; i < sizeof(base64rev); i++)
 | |
| 		base64rev[i] = base;
 | |
| 
 | |
| 	for (i = 0;  i < B64MAX; i++) {
 | |
| 		c = base64tab[i];
 | |
| 
 | |
| 		if (min > c)
 | |
| 			min = c;
 | |
| 
 | |
| 		if (max < c)
 | |
| 			max = c;
 | |
| 	}
 | |
| 
 | |
| 	for (i = 0;  i < B64MAX; i++) {
 | |
| 		c = base64tab[i];
 | |
| 
 | |
| 		if (base+i+1 > 127) {
 | |
| 			printf("Wrong base value @%d\n", i);
 | |
| 			return 1;
 | |
| 		}
 | |
| 
 | |
| 		base64rev[c - min] = base+i+1;
 | |
| 	}
 | |
| 
 | |
| 	base64rev['=' - min] = base + B64PADV;
 | |
| 
 | |
| 	base64rev[max - min + 1] = '\0';
 | |
| 
 | |
| 	printf("#define B64BASE '%c'\n", base);
 | |
| 	printf("#define B64CMIN '%c'\n", min);
 | |
| 	printf("#define B64CMAX '%c'\n", max);
 | |
| 	printf("#define B64PADV %u\n", B64PADV);
 | |
| 
 | |
| 	p = base64rev;
 | |
| 	printf("const char base64rev[]=\"");
 | |
| 	for (p = base64rev; *p; p++) {
 | |
| 		if (*p == '\\')
 | |
| 			printf("\\%c", *p);
 | |
| 		else
 | |
| 			printf("%c", *p);
 | |
| 	}
 | |
| 	printf("\"\n");
 | |
| 
 | |
| 	return 0;
 | |
| }
 |