00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <stdlib.h>
00018 #include <stdio.h>
00019 #include <string.h>
00020
00021 #include "hi_util_xmalloc.h"
00022 #include "hi_util_kmap.h"
00023 #include "hi_ui_config.h"
00024 #include "hi_return_codes.h"
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 int hi_ui_server_lookup_init(SERVER_LOOKUP **ServerLookup)
00045 {
00046 *ServerLookup = KMapNew(NULL);
00047 if(*ServerLookup == NULL)
00048 {
00049 return HI_MEM_ALLOC_FAIL;
00050 }
00051
00052 return HI_SUCCESS;
00053 }
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 int hi_ui_server_lookup_add(SERVER_LOOKUP *ServerLookup, unsigned long Ip,
00080 HTTPINSPECT_CONF *ServerConf)
00081 {
00082 int iRet;
00083
00084 if(!ServerLookup || !ServerConf)
00085 {
00086 return HI_INVALID_ARG;
00087 }
00088
00089 if((iRet = KMapAdd(ServerLookup, (void *)&Ip, 4, (void *)ServerConf)))
00090 {
00091
00092
00093
00094 if(iRet == 1)
00095 {
00096 return HI_NONFATAL_ERR;
00097 }
00098 else
00099 {
00100 return HI_MEM_ALLOC_FAIL;
00101 }
00102 }
00103
00104 return HI_SUCCESS;
00105 }
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 HTTPINSPECT_CONF *hi_ui_server_lookup_find(SERVER_LOOKUP *ServerLookup,
00128 unsigned long Ip, int *iError)
00129 {
00130 HTTPINSPECT_CONF *ServerConf;
00131
00132 if(!iError)
00133 {
00134 return NULL;
00135 }
00136
00137 if(!ServerLookup)
00138 {
00139 *iError = HI_INVALID_ARG;
00140 return NULL;
00141 }
00142
00143 *iError = HI_SUCCESS;
00144
00145 if(!(ServerConf = (HTTPINSPECT_CONF *)KMapFind(ServerLookup,(void *)&Ip,4)))
00146 {
00147 *iError = HI_NOT_FOUND;
00148 }
00149
00150 return ServerConf;
00151 }
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 HTTPINSPECT_CONF *hi_ui_server_lookup_first(SERVER_LOOKUP *ServerLookup,
00171 int *iError)
00172 {
00173 HTTPINSPECT_CONF *ServerConf;
00174
00175 if(!iError)
00176 {
00177 return NULL;
00178 }
00179
00180 if(!ServerLookup)
00181 {
00182 *iError = HI_INVALID_ARG;
00183 return NULL;
00184 }
00185
00186 *iError = HI_SUCCESS;
00187
00188 if(!(ServerConf = (HTTPINSPECT_CONF *)KMapFindFirst(ServerLookup)))
00189 {
00190 *iError = HI_NOT_FOUND;
00191 }
00192
00193 return ServerConf;
00194 }
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213 HTTPINSPECT_CONF *hi_ui_server_lookup_next(SERVER_LOOKUP *ServerLookup,
00214 int *iError)
00215 {
00216 HTTPINSPECT_CONF *ServerConf;
00217
00218 if(!iError)
00219 {
00220 return NULL;
00221 }
00222
00223 if(!ServerLookup)
00224 {
00225 *iError = HI_INVALID_ARG;
00226 return NULL;
00227 }
00228
00229 *iError = HI_SUCCESS;
00230
00231 if(!(ServerConf = (HTTPINSPECT_CONF *)KMapFindNext(ServerLookup)))
00232 {
00233 *iError = HI_NOT_FOUND;
00234 }
00235
00236 return ServerConf;
00237 }
00238
00239
00240
00241