diff options
author | Nithin Raju <nithin@vmware.com> | 2014-11-18 17:42:43 -0800 |
---|---|---|
committer | Gurucharan Shetty <gshetty@nicira.com> | 2014-11-20 07:10:53 -0800 |
commit | 70e562509a4df0a46012999845cb0b96b676e602 (patch) | |
tree | 908d32303b47fad2095d1a805535f8145893fd05 /datapath-windows/ovsext/Vport.c | |
parent | 2ba811323416042edac6792845bdd35256fc53c7 (diff) | |
download | openvswitch-70e562509a4df0a46012999845cb0b96b676e602.tar.gz |
datapath-windows: add WCHAR version of OvsFindVportByHvName()
In this patch, we rename the existing OvsFindVportByHvName() to
OvsFindVportByHvNameA() to indicate that the input string is an ASCII
string. We also define a OvsFindVportByHvNameW() that takes as input a
WCHAR string.
This will be used later in HvCreatPort() to check for ports with
duplicate names.
Signed-off-by: Nithin Raju <nithin@vmware.com>
Acked-by: Ankur Sharma <ankursharma@vmware.com>
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext/Vport.c')
-rw-r--r-- | datapath-windows/ovsext/Vport.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 33aa95e1e..5c9795d2c 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -65,6 +65,8 @@ static NTSTATUS CreateNetlinkMesgForNetdev(POVS_VPORT_EXT_INFO info, PVOID outBuffer, UINT32 outBufLen, int dpIfIndex); +static POVS_VPORT_ENTRY OvsFindVportByHvNameW(POVS_SWITCH_CONTEXT switchContext, + PWSTR wsName, SIZE_T wstrSize); /* * Functions implemented in relaton to NDIS port manipulation. @@ -560,24 +562,13 @@ OvsFindVportByOvsName(POVS_SWITCH_CONTEXT switchContext, /* OvsFindVportByHvName: "name" is assumed to be null-terminated */ POVS_VPORT_ENTRY -OvsFindVportByHvName(POVS_SWITCH_CONTEXT switchContext, - PSTR name) +OvsFindVportByHvNameW(POVS_SWITCH_CONTEXT switchContext, + PWSTR wsName, SIZE_T wstrSize) { POVS_VPORT_ENTRY vport = NULL; PLIST_ENTRY head, link; - /* 'portFriendlyName' is not NUL-terminated. */ - SIZE_T length = strlen(name); - SIZE_T wstrSize = length * sizeof(WCHAR); UINT i; - PWSTR wsName = OvsAllocateMemory(wstrSize); - if (!wsName) { - return NULL; - } - for (i = 0; i < length; i++) { - wsName[i] = name[i]; - } - for (i = 0; i < OVS_MAX_VPORT_ARRAY_SIZE; i++) { head = &(switchContext->portIdHashArray[i]); LIST_FORALL(head, link) { @@ -605,6 +596,27 @@ Cleanup: } POVS_VPORT_ENTRY +OvsFindVportByHvNameA(POVS_SWITCH_CONTEXT switchContext, + PSTR name) +{ + POVS_VPORT_ENTRY vport = NULL; + /* 'portFriendlyName' is not NUL-terminated. */ + SIZE_T length = strlen(name); + SIZE_T wstrSize = length * sizeof(WCHAR); + UINT i; + + PWSTR wsName = OvsAllocateMemory(wstrSize); + if (!wsName) { + return NULL; + } + for (i = 0; i < length; i++) { + wsName[i] = name[i]; + } + vport = OvsFindVportByHvNameW(switchContext, wsName, wstrSize); + OvsFreeMemory(wsName); + return vport; +} +POVS_VPORT_ENTRY OvsFindVportByPortIdAndNicIndex(POVS_SWITCH_CONTEXT switchContext, NDIS_SWITCH_PORT_ID portId, NDIS_SWITCH_NIC_INDEX index) @@ -1259,7 +1271,7 @@ OvsGetExtInfoIoctl(POVS_VPORT_GET vportGet, NDIS_RWL_AT_DISPATCH_LEVEL); if (vportGet->portNo == 0) { StringCbLengthA(vportGet->name, OVS_MAX_PORT_NAME_LENGTH - 1, &len); - vport = OvsFindVportByHvName(gOvsSwitchContext, vportGet->name); + vport = OvsFindVportByHvNameA(gOvsSwitchContext, vportGet->name); if (vport != NULL) { /* If the port is not a Hyper-V port and it has been added earlier, * we'll find it in 'ovsPortNameHashArray'. */ |