! \brief Parses a CNAME record into a cname_rdata structure */
| 912 | |
| 913 | /*! \brief Parses a CNAME record into a cname_rdata structure */ |
| 914 | struct cname_rdata* dns_cname_parser( unsigned char* msg, unsigned char* end, |
| 915 | unsigned char* rdata) |
| 916 | { |
| 917 | struct cname_rdata* cname; |
| 918 | int len; |
| 919 | |
| 920 | cname=0; |
| 921 | cname=(struct cname_rdata*)local_malloc(sizeof(struct cname_rdata)); |
| 922 | if(cname==0){ |
| 923 | LM_ERR("out of pkg memory\n"); |
| 924 | goto error; |
| 925 | } |
| 926 | if ((len=dn_expand(msg, end, rdata, cname->name, MAX_DNS_NAME-1))==-1) |
| 927 | goto error; |
| 928 | return cname; |
| 929 | error: |
| 930 | if (cname) local_free(cname); |
| 931 | return 0; |
| 932 | } |
| 933 | |
| 934 | |
| 935 |