| 143 | } |
| 144 | |
| 145 | BOOL MibII::GetIPMask(UINT IpArray[],UINT &IpArraySize) |
| 146 | { |
| 147 | UINT OID_ipAdEntMask[] = { 1, 3, 6, 1, 2, 1, 4 , 20, 1 ,3 }; |
| 148 | AsnObjectIdentifier MIB_ipAdEntMask = { sizeof(OID_ipAdEntMask)/sizeof(UINT), OID_ipAdEntMask }; |
| 149 | RFC1157VarBindList varBindList; // ��-�� ��� � SnmpVarBindList |
| 150 | RFC1157VarBind varBind[1]; // SnmpVarBind |
| 151 | AsnInteger errorStatus; |
| 152 | AsnInteger errorIndex; |
| 153 | AsnObjectIdentifier MIB_NULL = {0,0}; |
| 154 | BOOL Exit; |
| 155 | int ret; |
| 156 | int IpCount=0; |
| 157 | DWORD dtmp; |
| 158 | |
| 159 | varBindList.list = varBind; |
| 160 | varBindList.len = 1; |
| 161 | varBind[0].name = MIB_NULL; |
| 162 | SNMP_oidcpy(&varBind[0].name,&MIB_ipAdEntMask); // ��-�� ��� � SnmpUtilOidCpy |
| 163 | Exit = FALSE; |
| 164 | |
| 165 | while(!Exit){ |
| 166 | ret = Query(ASN_RFC1157_GETNEXTREQUEST,&varBindList,&errorStatus,&errorIndex); |
| 167 | |
| 168 | if(!ret) |
| 169 | Exit=TRUE; |
| 170 | else{ |
| 171 | ret = SNMP_oidncmp(&varBind[0].name,&MIB_ipAdEntMask,MIB_ipAdEntMask.idLength); // SnmpUtilOidNCmp |
| 172 | if(ret!=0){ |
| 173 | Exit=TRUE; |
| 174 | } |
| 175 | else{ |
| 176 | dtmp = *((DWORD *)varBind[0].value.asnValue.address.stream); |
| 177 | IpArray[IpCount] = dtmp; |
| 178 | IpCount++; |
| 179 | if((UINT)IpCount>=IpArraySize) |
| 180 | Exit = TRUE; |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | IpArraySize = IpCount; |
| 186 | |
| 187 | SNMP_FreeVarBind(&varBind[0]); // ��-�� ��� � SnmpUtilVarBindFree |
| 188 | |
| 189 | return Exit; |
| 190 | } |
| 191 |
nothing calls this directly
no outgoing calls
no test coverage detected