- all RAN code, CI code, configuration files, dockerfiles, in CSSL v1.0
- all deployment code (openshift, charts, ancillary files like shell
scripts), in MIT
- documentation in CC-BY-4.0
- exceptions might apply and are listed in NOTICE
- there is a new LICENSES folder with all licenses
- CONTRIBUTIONS.md has been updated accordingly
For automated changes based on OAI PL v1.1:
perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.{c,h,cpp}
perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.ts
perl -i~ -0pe 's/<!--.*Licensed to the OpenAirInterface.*openairinterface.org\n.*-->/<!-- SPDX-License-Identifier: LicenseRef-CSSL-1.0 -->/s' **/*.xml
The rest (cmake, files with missing license, cmake) manually.
73 lines
1.3 KiB
C
73 lines
1.3 KiB
C
/*
|
|
* SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
*/
|
|
|
|
#include "configuration.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static char *local;
|
|
static int local_size;
|
|
static char *remote;
|
|
static int remote_size;
|
|
|
|
static char *PUT(char *to, int tosize, char c)
|
|
{
|
|
if ((tosize & 4095) == 0) {
|
|
to = realloc(to, tosize + 4096); if (to == NULL) abort();
|
|
}
|
|
to[tosize] = c;
|
|
return to;
|
|
}
|
|
|
|
void clear_remote_config(void)
|
|
{
|
|
free(remote);
|
|
remote = NULL;
|
|
remote_size = 0;
|
|
}
|
|
|
|
void append_received_config_chunk(char *buf, int length)
|
|
{
|
|
int buflen = *(int *)buf;
|
|
if (buflen != length - sizeof(int)) {
|
|
printf("ERROR: bad trace -1, should not happen...\n");
|
|
abort();
|
|
}
|
|
buf += sizeof(int);
|
|
while (buflen) {
|
|
remote = PUT(remote, remote_size, *buf);
|
|
remote_size++;
|
|
buf++;
|
|
buflen--;
|
|
}
|
|
}
|
|
|
|
void load_config_file(char *filename)
|
|
{
|
|
int c;
|
|
FILE *f = fopen(filename, "r");
|
|
if (f == NULL) { perror(filename); abort(); }
|
|
while (1) {
|
|
c = fgetc(f); if (c == EOF) break;
|
|
local = PUT(local, local_size, c);
|
|
local_size++;
|
|
}
|
|
fclose(f);
|
|
}
|
|
|
|
void verify_config(void)
|
|
{
|
|
if (local_size != remote_size || memcmp(local, remote, local_size) != 0) {
|
|
printf("ERROR: local and remote T_messages.txt not identical\n");
|
|
abort();
|
|
}
|
|
}
|
|
|
|
void get_local_config(char **txt, int *len)
|
|
{
|
|
*txt = local;
|
|
*len = local_size;
|
|
}
|